OpenDNS Data Visualization Framework
OpenGraphiti is a free and open source 3D data visualization engine for data scientists to visualize semantic networks and to work with them. It offers an easy-to-use API with several associated libraries to create custom-made datasets. It leverages the power of GPUs to process and explore the data and sits on a homemade 3D engine.
First, you will need to clone the repository. The OpenDNS data visualization framework references a couple of git submodules. You need to use the --recursive option to make sure they all get downloaded properly.
$ git clone https://github.com/opendns/dataviz.git --recursive
Second, you have to install some required libraries if you don't already have them. In case the most recent versions of those libraries aren't compatible with the current version of OpenGraphiti, we have included the ones used for our developement in the repository. They can be found in the graphiti/Lib folder.
$ pip install networkx
$ pip install pygeoip
Now let's compile the OpenGraphiti engine :
$ cd dataviz/graphiti
$ make
You should now see a new binary named graphiti inside the your current folder.
Alternatively, you can compile the development version of OpenGraphiti to stay up-to-date with the most recent changes.
$ mkdir dataviz-dev
$ cd dataviz-dev
$ git clone https://github.com/ThibaultReuille/raindance.git
$ git clone https://github.com/ThibaultReuille/graphiti.git
$ cd graphiti
$ cmake .
$ make
You should see a new binary named graphiti in the current folder. If the compilation fails, it is very likely that you are missing some libraries (cmake will check the dependencies for you). Use your favorite package manager to install them. Here is the list:
OpenGL OpenCL GLFW3 GLEW Python Libs
OpenGraphiti comes with a couple of script packages. They are aimed to give our data scientists a couple of examples on how to use the engine and its API. The main demo package implements a variety of scripts that can be used to visualize graph datasets and manipulate them in 3D. The curious users are invited to add custom-made packages with their own specific scripts.
To list the available packages :
./graphiti
To run the demo package :
./graphiti demo [dataset.json]
To create your custom datasets, you will need to use the SemanticNet library located at this address:
We have provided several example scripts and use cases and these can be found in the semanticnet/examples folder.
For any questions, problems or feature requests you can subscribe to our Google Groups and discuss with the community :
You can also go on github and open an issue on the corresponding repository. We will address all issues as quickly as possible.
Copyright (c) 2014-2015, OpenDNS, Inc. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.